<?php

namespace app\common\model;

use think\Db;
use think\Log;
use think\Model;

/**
 * 任务动作
 */
class TaskAction extends Model
{

    // 开启自动写入时间戳字段
    protected $autoWriteTimestamp = 'integer';
    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';

    //下标顺序不得随意修改
    static $memo_arr = [
        0 => '倒计时结束，任务取消',
        1 => '倒计时结束，重新开始倒计时',
        2 => '用户确认接单',
        3 => '用户拒绝接单',
        4 => '已确认取件',
        5 => '取件已送达',
        6 => '维修完成',
        7 => '取件已归还',
        8 => '任务流程结束',
        9 => '审核不通过，任务拒接失败',
        10 => '审核通过，任务拒接成功',
        11 => '任务已结算',
        12 => '用户取消拒接',
        13 => '维修开始',
        14 => '无法维修',
    ];

    // 追加属性
    protected $append = [

    ];

    /*
     * 任务动作添加
     * $task 任务
     * $oper 操作人
     * $oper_type 操作人类型 user=用户,admin=管理员,system=系统
     * $remark 备注
     * $images 图片备注
     * $memo 动作说明
     * $state 状态:expired=任务到期,invalid=任务取消,take=接单,refuse=拒绝接单,pick=取件,deliver=送达,service=维修完成,return=还件,finish=完成,refuse_not_pass=拒接审核不通过,refuse_pass=拒接审核通过,settle=结算,refuse_cancel=取消拒接,service_start=维修开始,service_cancel=无法维修
     */
    public static function operAdd($task=null, $oper=null, $oper_type='user',$state='',$memo='')
    {
        $oper_id = empty($oper) ? 0 : (is_array($oper) ? $oper['id'] : $oper->id);
        if ($state == 'finish') {
            return self::create([
                'task_id'       => $task['id'],
                'oper_type'     => $oper_type,
                'oper_id'       => $oper_id,
                'state'         => $state,
                'memo'          => $memo,
                'createtime'    => time() + 1,
            ]);
        }
        return self::create([
            'task_id'       => $task['id'],
            'oper_type'     => $oper_type,
            'oper_id'       => $oper_id,
            'state'         => $state,
            'memo'          => $memo,
        ]);
    }
}
